package com.stylefeng.guns.modular.transcapacitymag.model;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@TableName("pre_order_inf")
 /**
 * 预下单信息
 *
 * @author xujianjie
 * @Date 2019-03-07 14:05
 * @TableField(exist = false) 实现属性与数据库字段不一一对应
 */
public class PreOrderInf extends Model<PreOrderInf> {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     * 自动生成后修改成实际的主键 
     */
    @Override
    protected Serializable pkVal() {
        return this.oiId;
    }
    
    //扩展能查询字段
    @TableField(exist = false) 
    private String key ;
    //开始日期
    @TableField(exist = false)     
    private String sdate;
    //截止日期 
    @TableField(exist = false) 
	private String edate;
    //排序字段
    @TableField(exist = false) 
	private String  sortField ;
	//排序	
	@TableField(exist = false) 
	private String sortOrder;
	
    public void setKey(String key) {
		this.key = key;
	}
	public String getKey() {
		return key;
	}	
	public void setSortField(String sortField) {
		this.sortField = sortField;
	}
	public String getSortField() {
		return sortField;
	}
	public void setSortOrder(String sortOrder) {
		this.sortOrder = sortOrder;
	}
	public String getSortOrder() {
		return sortOrder;
	}
	public void setEdate(String edate) {
		this.edate = edate;
	}
	public String getEdate() {
		return edate;
	}
	public void setSdate(String sdate) {
		this.sdate = sdate;
	}
	public String getSdate() {
		return sdate;
	}

    @TableId(value = "oi_id", type = IdType.UUID)
    @ApiModelProperty(value = "主键")
    private String oiId;     //主键

    @ApiModelProperty(value = "订单编号")
    @TableField("oi_code")
    private String oiCode;     //订单编号

    @ApiModelProperty(value = "订单类型 城际（CJ)/机场专线（JC）")
    @TableField("ot_id")
    private String otId;     //订单类型 城际（CJ)/机场专线（JC）

    @ApiModelProperty(value = "订单类型名称 城际/机场接机/机场送机")
    @TableField("ot_name")
    private String otName;     //订单类型名称 城际/机场接机/机场送机

    @ApiModelProperty(value = "订单服务类型:0（送）1（接）")
    @TableField("osc_id")
    private String oscId;     //订单服务类型:0（送）1（接）

    @ApiModelProperty(value = "车辆服务类型code 0(专)/1(快车)")
    @TableField("ost_id")
    private String ostId;     //车辆服务类型code 0(专)/1(快车)

    @ApiModelProperty(value = "车辆服务名称 0(专)/1(快车)")
    @TableField("ost_name")
    private String ostName;     //车辆服务名称 0(专)/1(快车)

    @ApiModelProperty(value = "线路id")
    @TableField("ol_id")
    private String olId;     //线路id

    @ApiModelProperty(value = "订单名称 城际（线路名称）/机场接送（机场接送）")
    @TableField("ol_name")
    private String olName;     //订单名称 城际（线路名称）/机场接送（机场接送）

    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    private Date createTime;     //创建时间

    @ApiModelProperty(value = "创建人 乘客下单时 为空")
    @TableField("create_user")
    private String createUser;     //创建人 乘客下单时 为空

    @ApiModelProperty(value = "更新时间")
    @TableField("update_time")
    private Date updateTime;     //更新时间

    @ApiModelProperty(value = "更新人 乘客取消等操作时  为空")
    @TableField("update_user")
    private String updateUser;     //更新人 乘客取消等操作时  为空

    @ApiModelProperty(value = "乘客id")
    @TableField("ci_id")
    private String ciId;     //乘客id

    @ApiModelProperty(value = "乘客姓名")
    @TableField("ci_name")
    private String ciName;     //乘客姓名

    @ApiModelProperty(value = "乘客手机")
    @TableField("ci_tel")
    private String ciTel;     //乘客手机

    @ApiModelProperty(value = "乘车人数")
    @TableField("ci_num")
    private Integer ciNum;     //乘车人数

    @ApiModelProperty(value = "总价")
    @TableField("ci_total_price")
    private BigDecimal ciTotalPrice;     //总价

    @ApiModelProperty(value = "行程公里数")
    @TableField("oi_distance")
    private Double oiDistance;     //行程公里数

    @ApiModelProperty(value = "起点区域加价")
    @TableField("oi_origin_price")
    private BigDecimal oiOriginPrice;     //起点区域加价

    @ApiModelProperty(value = "目的区域加价")
    @TableField("oi_dest_price")
    private BigDecimal oiDestPrice;     //目的区域加价

    @ApiModelProperty(value = "标准价")
    @TableField("base_price")
    private BigDecimal basePrice;     //标准价

    @ApiModelProperty(value = "里程加价")
    @TableField("distance_price")
    private BigDecimal distancePrice;     //里程加价

    @ApiModelProperty(value = "超时段加价")
    @TableField("time_price")
    private BigDecimal timePrice;     //超时段加价

    @ApiModelProperty(value = "日期加价")
    @TableField("date_price")
    private BigDecimal datePrice;     //日期加价

    @ApiModelProperty(value = "出发地地址")
    @TableField("oi_start_address")
    private String oiStartAddress;     //出发地地址

    @ApiModelProperty(value = "出发地经纬度")
    @TableField("oi_start_point")
    private String oiStartPoint;     //出发地经纬度

    @ApiModelProperty(value = "目的地地址")
    @TableField("oi_end_address")
    private String oiEndAddress;     //目的地地址

    @ApiModelProperty(value = "目的地经纬度")
    @TableField("oi_end_point")
    private String oiEndPoint;     //目的地经纬度

    @ApiModelProperty(value = "乘客预约时间")
    @TableField("ci_send_time")
    private Date ciSendTime;     //乘客预约时间

    @ApiModelProperty(value = "支付状态，0未付款，1已付款，2退款中，3已退款，4已取消")
    @TableField("pay_state")
    private String payState;     //支付状态，0未付款，1已付款，2退款中，3已退款，4已取消

    @ApiModelProperty(value = "实付金额")
    @TableField("pay_fee")
    private BigDecimal payFee;     //实付金额

    @ApiModelProperty(value = "支付时间")
    @TableField("pay_time")
    private Date payTime;     //支付时间

    @ApiModelProperty(value = "外部订单id")
    @TableField("oi_external_order_id")
    private String oiExternalOrderId;     //外部订单id

    @ApiModelProperty(value = "乘车验证码")
    @TableField("oi_qrcode")
    private String oiQrcode;     //乘车验证码

    @ApiModelProperty(value = "预约时间段开始时间")
    @TableField("oi_order_time_start")
    private Date oiOrderTimeStart;     //预约时间段开始时间

    @ApiModelProperty(value = "预约时间段结束时间")
    @TableField("oi_order_time_end")
    private Date oiOrderTimeEnd;     //预约时间段结束时间

    @ApiModelProperty(value = "发票 0（不需要）1：（需要）")
    @TableField("oi_contain_invoice")
    private String oiContainInvoice;     //发票 0（不需要）1：（需要）

    @ApiModelProperty(value = "其他说明")
    @TableField("note")
    private String note;     //其他说明

    @ApiModelProperty(value = "起飞/开车时间")
    @TableField("ex_send_time")
    private Date exSendTime;     //起飞/开车时间

    @ApiModelProperty(value = "落地/到达时间")
    @TableField("ex_arr_time")
    private Date exArrTime;     //落地/到达时间

    @ApiModelProperty(value = "航段")
    @TableField("ex_flight_leg")
    private String exFlightLeg;     //航段

    @ApiModelProperty(value = "航班号/车次")
    @TableField("ex_other_no")
    private String exOtherNo;     //航班号/车次

    @ApiModelProperty(value = "票号")
    @TableField("ex_ticket_no")
    private String exTicketNo;     //票号

    @ApiModelProperty(value = "车型编码 限制最大座位数")
    @TableField("vpt_code")
    private String vptCode;     //车型编码 限制最大座位数

    @ApiModelProperty(value = "订单金额")
    @TableField("coupon_fee")
    private String couponFee;     //订单金额

    @ApiModelProperty(value = "需要调度员确认的订单 0=未确认 1=已确认  2=已过期")
    @TableField("confirm_state")
    private String confirmState;     //需要调度员确认的订单 0=未确认 1=已确认  2=已过期

    @ApiModelProperty(value = "确认人id")
    @TableField("confirm_psn")
    private String confirmPsn;     //确认人id

    @ApiModelProperty(value = "订单过期时间")
    @TableField("ci_valid_time")
    private Date ciValidTime;     //订单过期时间

    @ApiModelProperty(value = "确认时间")
    @TableField("confirm_time")
    private Date confirmTime;     //确认时间

    //扩展能查询字段
    @TableField(exist = false)
    private String dispather;//1 按照调度员所属线路查询
    @TableField(exist = false)
    private String dispatherLineIds;//调度员所属线路

    public String getOiId(){
        return oiId;
    }
    public void setOiId(String oiId){
        this.oiId=oiId;
    }
    public String getOiCode(){
        return oiCode;
    }
    public void setOiCode(String oiCode){
        this.oiCode=oiCode;
    }
    public String getOtId(){
        return otId;
    }
    public void setOtId(String otId){
        this.otId=otId;
    }
    public String getOtName(){
        return otName;
    }
    public void setOtName(String otName){
        this.otName=otName;
    }
    public String getOscId(){
        return oscId;
    }
    public void setOscId(String oscId){
        this.oscId=oscId;
    }
    public String getOstId(){
        return ostId;
    }
    public void setOstId(String ostId){
        this.ostId=ostId;
    }
    public String getOstName(){
        return ostName;
    }
    public void setOstName(String ostName){
        this.ostName=ostName;
    }
    public String getOlId(){
        return olId;
    }
    public void setOlId(String olId){
        this.olId=olId;
    }
    public String getOlName(){
        return olName;
    }
    public void setOlName(String olName){
        this.olName=olName;
    }
    public Date getCreateTime(){
        return createTime;
    }
    public void setCreateTime(Date createTime){
        this.createTime=createTime;
    }
    public String getCreateUser(){
        return createUser;
    }
    public void setCreateUser(String createUser){
        this.createUser=createUser;
    }
    public Date getUpdateTime(){
        return updateTime;
    }
    public void setUpdateTime(Date updateTime){
        this.updateTime=updateTime;
    }
    public String getUpdateUser(){
        return updateUser;
    }
    public void setUpdateUser(String updateUser){
        this.updateUser=updateUser;
    }
    public String getCiId(){
        return ciId;
    }
    public void setCiId(String ciId){
        this.ciId=ciId;
    }
    public String getCiName(){
        return ciName;
    }
    public void setCiName(String ciName){
        this.ciName=ciName;
    }
    public String getCiTel(){
        return ciTel;
    }
    public void setCiTel(String ciTel){
        this.ciTel=ciTel;
    }
    public Integer getCiNum(){
        return ciNum;
    }
    public void setCiNum(Integer ciNum){
        this.ciNum=ciNum;
    }
    public BigDecimal getCiTotalPrice(){
        return ciTotalPrice;
    }
    public void setCiTotalPrice(BigDecimal ciTotalPrice){
        this.ciTotalPrice=ciTotalPrice;
    }
    public Double getOiDistance(){
        return oiDistance;
    }
    public void setOiDistance(Double oiDistance){
        this.oiDistance=oiDistance;
    }
    public BigDecimal getOiOriginPrice(){
        return oiOriginPrice;
    }
    public void setOiOriginPrice(BigDecimal oiOriginPrice){
        this.oiOriginPrice=oiOriginPrice;
    }
    public BigDecimal getOiDestPrice(){
        return oiDestPrice;
    }
    public void setOiDestPrice(BigDecimal oiDestPrice){
        this.oiDestPrice=oiDestPrice;
    }
    public BigDecimal getBasePrice(){
        return basePrice;
    }
    public void setBasePrice(BigDecimal basePrice){
        this.basePrice=basePrice;
    }
    public BigDecimal getDistancePrice(){
        return distancePrice;
    }
    public void setDistancePrice(BigDecimal distancePrice){
        this.distancePrice=distancePrice;
    }
    public BigDecimal getTimePrice(){
        return timePrice;
    }
    public void setTimePrice(BigDecimal timePrice){
        this.timePrice=timePrice;
    }
    public BigDecimal getDatePrice(){
        return datePrice;
    }
    public void setDatePrice(BigDecimal datePrice){
        this.datePrice=datePrice;
    }
    public String getOiStartAddress(){
        return oiStartAddress;
    }
    public void setOiStartAddress(String oiStartAddress){
        this.oiStartAddress=oiStartAddress;
    }
    public String getOiStartPoint(){
        return oiStartPoint;
    }
    public void setOiStartPoint(String oiStartPoint){
        this.oiStartPoint=oiStartPoint;
    }
    public String getOiEndAddress(){
        return oiEndAddress;
    }
    public void setOiEndAddress(String oiEndAddress){
        this.oiEndAddress=oiEndAddress;
    }
    public String getOiEndPoint(){
        return oiEndPoint;
    }
    public void setOiEndPoint(String oiEndPoint){
        this.oiEndPoint=oiEndPoint;
    }
    public Date getCiSendTime(){
        return ciSendTime;
    }
    public void setCiSendTime(Date ciSendTime){
        this.ciSendTime=ciSendTime;
    }
    public String getPayState(){
        return payState;
    }
    public void setPayState(String payState){
        this.payState=payState;
    }
    public BigDecimal getPayFee(){
        return payFee;
    }
    public void setPayFee(BigDecimal payFee){
        this.payFee=payFee;
    }
    public Date getPayTime(){
        return payTime;
    }
    public void setPayTime(Date payTime){
        this.payTime=payTime;
    }
    public String getOiExternalOrderId(){
        return oiExternalOrderId;
    }
    public void setOiExternalOrderId(String oiExternalOrderId){
        this.oiExternalOrderId=oiExternalOrderId;
    }
    public String getOiQrcode(){
        return oiQrcode;
    }
    public void setOiQrcode(String oiQrcode){
        this.oiQrcode=oiQrcode;
    }
    public Date getOiOrderTimeStart(){
        return oiOrderTimeStart;
    }
    public void setOiOrderTimeStart(Date oiOrderTimeStart){
        this.oiOrderTimeStart=oiOrderTimeStart;
    }
    public Date getOiOrderTimeEnd(){
        return oiOrderTimeEnd;
    }
    public void setOiOrderTimeEnd(Date oiOrderTimeEnd){
        this.oiOrderTimeEnd=oiOrderTimeEnd;
    }
    public String getOiContainInvoice(){
        return oiContainInvoice;
    }
    public void setOiContainInvoice(String oiContainInvoice){
        this.oiContainInvoice=oiContainInvoice;
    }


}
